package com.pan.common.interview.http;

import java.util.Scanner;
import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;
/**
 * @author by panstark
 * @description
 * @notice
 * @date 2020/12/29
 */
public class HttpInfo {

    /**
     * osi七层协议
     * 1、物理层  --比特 --机械、电子、定时接口欧通信信道上的原始比特流传输（0101）
     * 2、数据链路层  --将比特包装为帧 （物理寻址，同事将原始比特流转变为逻辑传输线路）
     * 3、网络层   --路由器 将不同的帧通过网络进行分发（ 控制子网的运行，如逻辑编辑、分组传输、路由选择）
     * 4、传输层  --tcp 、udp （接受上一层的数据，在需要时把数据进行分割，并将这些数据交给网络层，且保证这些数据段有效到达对端）
     * 5、会话层  --不同机器上的用户建立及管理会话（linux，windows）
     * 6、表示层  --信息的语法语义以及它们的关联，如加密解密、转换翻译、压缩解压缩
     * 7、应用层  --各种应用程序协议如http、ftp、smtp、pop3
     */

    /**
     * 为什么一定要三次握手
     *  为了初始化sequence Number的初始值，为后续的通信进行标记，防止网络传输将数据包传输错误
     *  ACK (Acknowledge character）即是确认字符，在数据通信中，接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。
     *  SYN：同步序列编号（Synchronize Sequence Numbers）。
     *  是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时，
     *  客户机首先发出一个SYN消息，服务器使用SYN+ACK应答表示接收到了这个消息，
     *  最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接，数据才可以在客户机和服务器之间传递。
     */

    /**
     * netstate
     */

    /**
     * TCP会把数据分段发送
     * RTT:发送一个数据包到收到对应的ACK,所花费的还是件
     * RTO:重传时间间隔
     * TCP使用滑动窗口来做流量控制和乱序重排
     *   保证TCP的可靠性
     *   保证TCP的流控特性
     */

    /**
     * 正常情况下，一个http请求接受到相应就会断开，但是目前采用的长连接技术，服务器发送响应后，还会等一段时间才会断开连接。
     */

    /**
     * Cookie:
     *  由服务器发送给客户端的特殊信息，以文本形式存放在客户端
     *  服务端再次请求时，会把Cookie回发
     *  服务器接收到后，会解析Cookie与客户端相对应的内容
     */

    /**
     * Session :
     * 服务器端的机制，在服务器保存信息
     * 解析客户端请求并操作session id,按需保存状态信息
     *  session的实现方式：
     *  使用Cookie来实现
     *  使用URL回写来实现
     */

    /**
     * Cookie与session的区别
     * Cookie数据存放在客户浏览器上，Session数据存放在服务器上
     * Session相对Cookie更安全
     * 若考虑减轻服务器负担，应使用Cookie
     */

    /**
     * http与https的区别
     *  SSL(Security Socket Layer，安全套接层)
     *  为网络通信提供安全和完整的一种通信协议
     *  通过身份认证与数据加密进行实现
     *
     *  1、HTTPS需要到CA申请证书，HTTP不需要
     *  2、HTTPS密文传输，http明文传输
     *  3、链接方式不同，https使用443端口，http使用980端口
     *  4、https是有状态的=http+加密+认证+完整性保护，较http安全
     */

    /**
     * 加密方式
     * 1、对称加密
     * 2、非对称加密
     * 3、哈希算法
     * 4、数字签名
     */
}







